home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 22
/
Commodore_Free_Issue_22_2008_Commodore_Computer_Club.d64
/
t.uiec 1
< prev
next >
Wrap
Text File
|
2023-02-26
|
11KB
|
402 lines
u
UIEC INFORMATION
The device is now shipping and Jim has
kindly let me reprint the draft of the
read me guide I personally have one of
these on order and will give a full
and honest review as soon as the
device arrives for my testing.
UIEC
here is the most current README:
sd2iec - a controller/interface
adapting storage devices to the CBM
serial bus Copyright (C) 2007,2008
Ingo Korb <ingo@akana.de> Parts based
on code from others, see comments in
main.c for details. JiffyDos send
based on code by M.Kiesel Fat LFN
support and lots of other ideas by Jim
Brain crc7.c generated by pycrc, see
comments in it for pycrc licence.
Final Cartridge III fastloader support
by Thomas Giesel
Free software under GPL version 2 ONLY,
see comments in main.c and COPYING for
details.
FIXME:This file still needs to be
expanded. A lot.
INTRODUCTION:
=============
sd2iec is firmware, used in hardware
designs like MMC2IEC, SD2IEC, or uIEC,
that allows the Commodore serial bus
to access removable storage devices
(MMC, SD, CF) - think of it as a 1541
with a modern storage medium instead
of disks. The project was inspired by
(and uses a few bits of code from)
MMC2IEC[1] by Lars Pontoppidan and once
ran on the same hardware before it grew
too big for the ATmega32 used there.
Currently, the firmware provides good
DOS and file-level compatibility with
CBM drives, but much work still
remains. Unless specifically noted,
anything that tries to execute code on
the 1541 will not work, this includes
every software fastloader.
[1] Homepage:
http://pontoppidan.info/lars/
index.php?proj=mmc2iec
Supported commands:
===================
- General notes:
Any command not listed below is not
currently supported.
- Directory filters:
To show only directories, both =B (CMD-
compatible) and =D can be used. On a
real C= drive D matches everything.
To include hidden files in directory,
use *=H - on a 1541 this doesn't do
anything. sd2iec marks hidden files
with an H after the lock mark, i.e.
"PRG<H" or "PRG H".
CMD-style "short" and "long" directory
listings with timestamps are supported
("$=T"), including timestamp filters.
Please read a CMD manual for the syntax
until this file is updated.
- Partition directory:
The CMD-style partition directory
($=P) is supported, including filters
($=P:S*). All partitions are listed
with type "FAT", although this could
change to NAT later for compatibility.
- CD/MD/RD:
Subdirectory access is compatible to
the syntax used by the CMD drives,
although drive/partition numbers are
completely ignored.
Quick syntax overview:
CD:_ changes into the parent
dir (_ is the left arrow on the C64)
CD_ dito
CD:foo changes into foo
CD/foo dito
CD//foo changes into \foo
CD/foo/:bar changes into foo\bar
CD/foo/bar dito
You can use wildcards anywhere in
the path. To change into an M2I or D64
image the image file must be named
after the :, it will not be recognized
otherwise.
MD uses a syntax similar to CD and
will create the directory listed after
thecolon (:) relative to any
directory listed before it.
MD/foo/:barcreates bar in foo
MD//foo/:bar creates bar in \foo
RD can only remove subdirectories of
the current directory.
RD:foo deletes foo
CD is also used to mount/unmount
image files. Just change into them
as if they were a directory and use
CD:_ (left arrow on the C64) to leave.
Please note that image files are
detected by file extension and file
size & there is no reliable way to see
if a file is a valid image file.
- CP, C<Shift-P>
This changes the current partition;
see "Partitions" below for details.
- C:
File copy command, should be CMD
compatible. The syntax is
C[partition][path]:targetname=
[[partition][path]:]sourcename[,
[[p][p]:]sourcename...]
You can use this command to copy
multiple files into a single target
file in which case all source files
will be appended into the target
file. Parsing restarts for every
source file name which means that
every source name is assumed to be
relative to the current directory.
You can use wildcards in the source
names, but only the first
file matching will be copied.
Copying REL files should work, but
isn't tested well. Mixing REL and
non-REL files in an append operation
isn't supported.
- G-P
Get partition info, see CMD FD/HD
manual for details. The reported
information is partially faked,
feedback is welcome.
- N:
Format works only if a D64 image is
already mounted.
- R
Renaming files should work the same
as it does on CMD drives, although
the errors flagged for invalid
characters in the name may differ.
- S:
Name matching is fully supported,
directories are ignored.
Scratching of multiple files
separated by , is also supported with
no limit to the number of files except
for the maximum command line length
(usually 100 to 120 characters).
- T-R and T-W
If your hardware features RTC
support the commands T-R (time read)
and T-W (time write) are available. If
the RTC isn't present, both commands
return 30,SYNTAX ERROR,00,00; if the
RTC is present but not set correctly
T-R will return 31,SYNTAX ERROR,00,00.
Both commands expect a fourth
character that specifies time format
to be used, T-W expects that the new
time follows that character in exactly
the format returned by T-R with the
same format char.
The possible formats are:
- "A"SCII: "SUN. 01/20/08 01:23:45
PM"+CHR$(13)
The day-of-week string can be any of
"SUN.", "MON.", "TUES", "WED.", "THUR",
"FRI.", "SAT.". The year field is
modulo 100.
- "B"CD or "D"ecimal:
Both these formats use 9 bytes to
specify the time. For BCD everything is
BCD-encoded, for Decimal the numbers
are sent/parsed as-is.
Byte 0: Day of the week (0 for
Sunday)
1: Year (modulo 100 for BCD; -1900 for
Decimal, i.e. 108 for 2008)
2: Month (1-based)
3: Day (1-based)
4: Hour (1-12)
5: Minute (0-59)
6: Second (0-59)
7: AM/PM-Flag (0 is AM, everything
else is PM)
8: CHR$(13)
When the time is set a year less
that 80 is interpreted as 20xx.
- U0
Device address changing with
"U0>"+chr$(new address) is supported,
other U0 commands are currently not
implemented.
- U1/U2/B-R/B-W
Block reading and writing is fully
supported while a D64 image is
mounted.
- B-P
Supported, not checked against the
original rom at all.
- UI+/UI-
Switching the slightly faster bus
protocol for the VC20 on/off works, it
hasn't been tested much though.
- UI/UJ
Soft/Hard reset - UI just sets the
"73,..." message on the error channel,
UJ closes all active buffers but
doesn't reset the current directory,
mounted image, swap list or anything
else.
- U<Shift-J>
Real hard reset - this command
causes a restart of the AVR processor
(skipping the bootloader if
installed). <Shift-J> is character
code 202.
- X: Extended commands. If you use
JiffyDOS, you can send them by using
@"X..." - without quotes you'll just
receive an error.
- XEnumSets the "file extension mode".
This setting controls if files on FAT
are written with an x00 header and
extension or not.
Possible values for num are:
0: Never write x00 format files.
1: Write x00 format files for
SEQ/USR/REL, but not for PRG
2: Always write x00 format files.
3: Use SEQ/USR/REL file
extensions, no x00 header
4: Same as 3, but also for PRG
If you set mode 3 or 4, extension
hiding is automatically enabled. This
setting can be saved in the EEPROM
using XW, the default value is 1.
For compatibility with existing
programs that write D64 files, PRG
files that have D64, D41, D71, D81 or
M2I as an extension will always be
written without an x00 header and
without any additional PRG file
extension.
- XE+/XE-Enable/disable extension
hiding. If enabled, files in FAT with
a PRG/SEQ/USR/REL extension will have
their extension removed and the file
type changed to the type specified by
the file extension - e.g.
APPLICATION.PRG will become a PRG file
named "APPLICATION", "README.SEQ" will
become a SEQ file named "README".
This flag can be saved in the EEPROM
using XW, the default value is disabled
(-).
- XB+/XB-Enable/disable free block
calculation for FAT32 drives. As the
free block calculation for FAT32 can
take a lot of time it can be disabled
using XB-. If it is disabled, sd2iec
will always report "1 BLOCKS FREE" for
FAT32 drives. The free block
calculation on FAT12/FAT16 isn't
affected because it takes just two
seconds at most. This flag can be saved
in the EEPROM using XW, the default
value is enabled (+).
- XJ+/XJ-Set or reset the JiffyDOS
protocol support flag. This flag can
be saved in the EEPROM using XW, the
default value is enabled (+).
- X*+/X*-Enable/disable 1581-style
* matching. If enabled, characters
after a * will be matched against the
end of the file name.
If disabled, any characters after a *
will be ignored.This flag can be
saved in the EEPROM using XW, the
default value is enabled (+).
- XCnumSet oscillator calibration
value to num (must be between 0 and
255). Default is whatever your chip
defaults to. This value can be saved in
the EEPROM using XW.
- XX without any following
characters reports the current state of
all extended parameters via the error
channel, similiar to DolphinDOS.
Example result: "03,J-:C152:E01+:B+:*+,08,00"
The track indicates the current device
address.
- XS:nameSet up a swap list - see
"Changing Disk Images" below.
XS Disable swap list
- XW Store configuration to EEPROM
This commands stores the current
configuration in the EEPROM. It will
automatically be read when the AVR is
reset, so any changes you made will
persist even after turning off the
hardware.
The stored configuration includes the
oscillator calibration value, the
JiffyDOS protocol support flag, the
extension mode and the current device
address. If you have changed the device
address by software, sd2iec will power
up with that address unless you have
changed the device address jumpers (if
available) to a different setting than
the one active at the time the
configuration was saved.
You can think of this feature as
changing the meaning of one specific
setting of the jumpers to a different
address if this sounds logical enough to you.
The "hardware overrides software
overrides hardware" priority was chosen
to allow accessing sd2iec even when it
is soft- configured for a device number
that is already taken by another device
on the bus without having to remove
that device to reconfigure sd2iec (e.g.
when using a C128D).
- X? Extended version query
This commands returns the extended
version string which consists of the
version, the processor type set at
build time and the suffix of the
configuration file (usually corresponds
to the short name of the hardware
sd2iec was compiled for).
CONTINUED IN PART 2